using Abp.Application.Services;
using Abp.Application.Services.Dto;
using SOEI.Solution.Customized.Dtos;
using SOEI.Solution.Integratedes.ElectronicSignet.Dtos;
using SOEI.Solution.Integratedes.Organization.Dtos;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace SOEI.Solution.Integratedes.Organization
{
    public interface IOursEconomyOrganiAppService : IApplicationService
    {
        #region -------------------------------------------------辅助工具生成---------------------------------------------- 
        

        #endregion

        #region -------------------------------------------------用户自定义------------------------------------------------

        /*请在此扩展应用服务接口*/
        /// <summary>
        /// 获取我的机构信息（必须有当前登录的用户，如果是Admin登录没有机构信息则返回一个空的机构）
        /// </summary>
        /// <returns></returns>
        Task<OEconomyOrganiListDto> GetOwenOrgani();


        /// <summary>
        /// 获取我的机构备案信息（必须有当前登录的用户，如果是Admin登录没有机构信息则返回一个空的机构）
        /// </summary>
        /// <returns></returns>
        Task<OEconomyOrganiListDto> GetOwenOrganiRecord();

        /// <summary>
        /// 提交备案数据
        /// </summary>
        /// <returns></returns>
        Task OwenUpdate(OEconomyOrganiEditDto input);

        /// <summary>
        /// 经济机构初始化备案
        /// </summary>
        /// <returns></returns>
        Task SubmitInitRecord();

        /// <summary>
        /// 获取我的签章数据
        /// </summary>
        /// <returns></returns>
        Task<OrgSignetOutput> GetOwenOrganiSignet();

        /// <summary>
        /// 提交电子印章申请
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task SubmitSignetRecord(OrgSignetInput input);

        /// <summary>
        /// 获取我的机构初始化承诺书【新模式上门服务许可】
        /// </summary>
        /// <returns></returns>
        Task<OrgPledgeBookOutput> GetOwenOrganiPledgeBook();

        /// <summary>
        /// 提交新模式许可申请【新模式上门服务许可】
        /// </summary>
        /// <param name="input">必须包含印章编号</param>
        /// <returns></returns>
        Task SubmitPledgeBook(EntityDto<long> input);


        #endregion

    }
}
